n
代表接下來的輸入行數n
後,要用 getchar()
或 gets()
等方式濾掉換行符號,再開始 while
迴圈存字串
int n;
char str[999] = {0};
scanf("%d", &n);
getchar();
while(n--){
gets(str);
...
}
return 0;
for
迴圈逐字元處理,因為輸出都是大寫,所以用 if
過濾出小寫字母,透過 ASCII 的特性來存入計算次數的 count
陣列,其餘字元 (包含空白、大寫字母和其他) 直接計算次數即可
for(i = 0; i < strlen(str); i++){
if(str[i] >= 'a' && str[i] <= 'z'){
count[str[i] - 'a' + 'A']++;
}
else{
count[str[i]]++;
}
}
strlen(str)
,就留給大家思考囉~
for(i = sizeof(str); i >= 1; i--){
for(j = 'A'; j <= 'Z'; j++){
if(count[j] == i){
printf("%c %d\n", j, i);
}
}
}
#include<stdio.h>
#include<string.h>
int main(){
int n;
char str[999] = {0};
int count[91] = {0};
int i, j;
scanf("%d", &n);
getchar();
while(n--){
gets(str);
for(i = 0; i < strlen(str); i++){
if(str[i] >= 'a' && str[i] <= 'z'){
count[str[i] - 'a' + 'A']++;
}
else{
count[str[i]]++;
}
}
}
for(i = sizeof(str); i >= 1; i--){
for(j = 'A'; j <= 'Z'; j++){
if(count[j] == i){
printf("%c %d\n", j, i);
}
}
}
return 0;
}